package exam.test18;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: Endstart
 * Date: 2020-12-18
 * Time: 21:50
 */
public class TestMain {

    public static void main(String[] args) {
//        Stack<Integer> S = new Stack<>();
//        Queue<Integer> Q = new ArrayDeque<>();
//
//        S.push(2);
//        for (int i = 1; i < 5; i++) {
//            S.push(S.peek() * i);
//        }
//        while (!Q.isEmpty()) {
//            Q.add(S.pop());
//        }
//        for (int i = 0; i < 2; i++) {
//            Q.add(S.pop() * i);
//        }
//        while (!Q.isEmpty()) {
//            S.push(Q.remove());
//        }
//        System.out.println(S);

    }

    public static long FibonacciBase(int num) {
        return FibonacciRecursive(num, 0);
    }

    public static long FibonacciRecursive(long num, int depth) {
        if (num <= 1 || (depth >= 5 && num % 2 == 0)) {
            return 1;
        }
        return FibonacciRecursive(num - 1, depth + 1) +  FibonacciRecursive(num - 2, depth + 2);
    }


    public static int recMultiply(int a, int b) {
        if (b == 0) return 0;
        return recMultiply(a, b - 1) + a;
    }

    public static int recDivide(int n, int d) {
        if (n >= d) {
            return recMultiply(n - d, d) + 1;
        }
        return 0;
    }



}
